﻿#pragma once
#include "Lexer.h"
class Base_Node
{
	/*	所有节点的基类
	 成员属性:	type
	 value	Number的值或者下属子树的值
	 子节点指针 left right
	*/
private:

protected:
	Lexer::Token_type type;
	Base_Node() {};

public:
	~Base_Node() {};
	Lexer::Token_type getType() { return type; }
	virtual double getValue() = 0;
	virtual std::string generatePrefix()const = 0;
	virtual std::string generateInfix()	const = 0;
	virtual std::string generatePostfix() const = 0;
};
